﻿#ifndef INSERTDEVMODEDLG_H
#define INSERTDEVMODEDLG_H

#define			MAX_SEARCH_NUM			500

#include <QDialog>
#include <QTableWidgetItem>
#include <QFileInfo>
#include "MyFileOper.h"
#include "GetColumnInfo.h"
#include "DbCfgFun.h"
#include "db_cfg_g_def.h"

namespace Ui {
    class InsertDevModeDlg;
}

class InsertDevModeDlg : public QDialog {
    Q_OBJECT
public:
    InsertDevModeDlg(QWidget *parent = 0);
    ~InsertDevModeDlg();

	//	初始化设备模板文件列表
	int GetModelFileInfo();
	//	初始化TABLE控件
	void InitModeFileTab();
	//	初始化选中模板文件
	void InitSeltModeFile();
	//	初始化选中模板文件信息
	void InitSeltModeFileInfo();

	//	读模板类型信息
	int GetRelayExp(QString filename, QString attname, int attno, char *pbuff, int buff_size);
	//	读模板类型信息
	int GetRelayExp_Str(QString filename, QString attname, int attno, QString &ContStr);

	//	检查模板文件四遥个数
	bool CheckTemplateIndexNum();

	//	检查模板文件是否正确
	bool bCheckTemplate(QString &ErrInfo);
	//设备模板名字是否有重复
	bool IsDevModelNameSafte(char *pByName);

	//	插入模板YX记录
	int InsertModel_Ryb(unsigned int DevMode_Id);
	int InsertModel_Yx(unsigned int DevMode_Id);
	//	插入模板Yc记录
	int InsertModel_Yc(unsigned int DevMode_Id);
	int InsertModel_Bhyc(unsigned int DevMode_Id);
	//	插入模板YX记录
	int InsertModel_Yk(unsigned int DevMode_Id);
	//	插入模板Yc记录
	int InsertModel_Ym(unsigned int DevMode_Id);
	//	插入模板定值记录
	int InsertModel_Set(unsigned int DevMode_Id);
	int InsertModel_Para(unsigned int DevMode_Id);
	int InsertModel_Prec(unsigned int DevMode_Id);
	int InsertModel_SetArea(unsigned int DevMode_Id);

// 	int InsertModel_FixValue(unsigned int DevMode_Id);
// 	//	插入模板保护事件记录
// 	int InsertModel_RlySOE(unsigned int DevMode_Id);
// 	//	插入模板自检记录
// 	int InsertModel_CheckSelf(unsigned int DevMode_Id);
// 	//	插入模板保护采样
// 	int InsertMode_RlyMeasure(unsigned int DevMode_Id);

protected:
    void changeEvent(QEvent *e);

signals:
	void	RefreshData_Signal();
	void    UpDateDevModeItem_Signal(quint32 AppType, quint32 TableId, quint32 ParentId, quint32 RecordId, int RowProp);

protected slots:
	void	ModelFileClicked(QTableWidgetItem *pItem);
	void	OnClickFileVHead(int RowNo);
	void	RefrashModelFile();
	void	AddDeviceMode();


	void	RefreshData_Slot();
	void    UpDateDevModeItem_Slot(quint32 AppType, quint32 TableId, quint32 ParentId, quint32 RecordId, int RowProp);

private:
	Ui::InsertDevModeDlg *ui;

	MyFileOper		m_FileOper;
	QFileInfoList	m_FileList;
	int			m_SeltFileNo;
	QString			m_ModelFileName;
	QString			m_ModelAllFileName;
	int			m_ModelYxNum;
	int			m_ModelYcNum;
	int			m_ModelBhycNum;
	int			m_ModelYkNum;
	int			m_ModelYmNum;
	int			m_ModelSetNum;
	int			m_ModelParaNum;
	int			m_ModelPrecNum;
	int			m_ModelRybNum;
	int			m_ModelSetAreaNum;

	int			m_FileYxNum;
	int			m_FileYcNum;
	int			m_FileYkNum;
	int			m_FileYmNum;
	int			m_FileBHYcNum;
	

	GetColumnInfo	m_ColInfo;
	char		m_Dsql[SQL_MAX_LEN*2];
};

#endif // INSERTDEVMODEDLG_H
